Systems and methods for using entered text to access and process contextual information

ABSTRACT

A contextual keyboard allows users to bring in information not normally found on a keyboard, as though that information had been typed in afresh. It also allows users to take information entered on the keyboard, or simply available on the screen, or implicit in information on the screen, and perform actions on it, such as calling a phone number, entering contact or calendar information into a local database on the device, or using the information as search terms in an online query. The central novelty of this invention is moving the functionality into the keyboard layer, so as to be universally accessible on the device.

PRIORITY CLAIM

This application claims the benefit of U.S. Provisional Application Ser.No. 61/415,828 filed Nov. 20, 2010, the contents of which are herebyincorporated by reference.

BACKGROUND OF THE INVENTION

Conventional touchscreen devices typically require users to navigatebetween different applications using onscreen menus or by selectingicons representing applications or files from one or more pages oficons. The keyboard in any given application may only provide access toletters, numbers, and symbols, such as found on a typical physicalkeyboard. Users who wish to access or manipulate data, or performfunctions available on the device, need to navigate through a series ofonscreen menus and choices, which can be time-consuming and awkward.

SUMMARY OF THE INVENTION

The present invention provides systems and methods for recognizing whena user's intent to enter a word, certain words and user actions is to beprocessed as commands before they are output to an active application asordinary text. The present invention performs some action on a block ofhighlighted text, rather than simply overwriting it with the identifiedtext string. The present invention further identifies an implicit targetfor an action that requires an object upon which the action is performedwhen there is no highlighted or otherwise explicitly indicated target.By augmenting the functionality of a keyboard, text that would normallybe output from the keyboard is intercepted before it is sent to anactive application, in order to perform some other action. The generatedtext may not be sent to the application, depending on the decision ofthe system, and possible further user input to disambiguate the user'sintention. Hereinafter, the term “contextual keyboard” refers to akeyboard of the present invention which can recognize both particularinput words as processing commands and detect objects in the applicationenvironment upon which those commands are performed. The contextualkeyboard is an information interchange, allowing users to access otherdata residing on the device, or accessible from the device via a wiredor wireless connection to the Internet, and also to take informationentered via the keyboard or otherwise available as an implicit orexplicit seed, and do something with it including using an applicationelsewhere on the device, or using it to get information or performactions via the Internet. Because the keyboard layer is presenteverywhere, this functionality is available to the user no matter whatapplication on the device is being used. There is no reason the textentered on the keyboard even needs to be sent to the application if theuser wants to use it to specify an action to perform, rather than tosend to the application.

Examples of things that can be done with a seed include:

-   -   Using it to perform an online search, either at a general        purpose search engine like Google® or at some other online        service such as looking up consumer reviews on Yelp®, purchase        information on Amazon®, or information about a person on        Facebook®, MySpace®, or some other social networking site.    -   Creating a link to an online search, to include in a message,        post, or note.    -   Treating the seed as text to be sent in a message such as email        or sms, or posted to a site such as Twitter or Facebook.    -   Making a phone call to a phone number associated with the seed.    -   Making a payment to an individual or business associated with        the seed using wallet software.    -   Getting a map of a location associated with the seed.    -   Putting it elsewhere on the phone, such as in a contact or        calendar database.    -   Using it to get information from elsewhere on the phone (such as        in a contact or calendar database) to include in the current        context.

The access may be accomplished by allowing recognition of “gestures” onand around the keyboard. The contextual keyboard may predefine some ofthese gestures, and the user may define some later.

In one aspect of the invention, entering of a word on the keyboardtriggers an action. These special words that cause actions to happen canbe defined by either the user, or by the system.

BRIEF DESCRIPTION OF THE DRAWINGS

Preferred and alternative examples of the present invention aredescribed in detail below with reference to the following drawings:

FIG. 1 is a block diagram of an exemplary system formed in accordancewith an embodiment of the present invention; and

FIGS. 2-28 are exemplary screen shots of how the system of FIG. 1 can beoperated by a user.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

The following are definitions used in this application.

Contextual Keyboard: A touchscreen keyboard and processing device thatcan recognize both particular input words as processing commands anddetect objects in the application environment upon which those commandsare performed.

Gesture: The movement of a finger (or stylus) across the touchscreen forentering data on a keyboard; interacting with applications, such aschoosing menu items or checkboxes; or indicating other user intentions.Gestures do not need to include touching the screen at all—a device withan accelerometer or gyroscope could allow gestures that are accomplishedby some movement of the device itself, rather than a touch on thescreen. Similarly, with regard to touch on the screen, the touch doesnot need to be literal: a pointer such as a motion-sensitive remotecontrol can gesture across a virtual touchscreen. In other cases, acamera may be used to detect a gesture movement performed within view ofthe camera. A gesture performed on a contextual keyboard usuallygenerates a unit of text. This text may be recognized as a command-macroor text-macro (as defined below), and processed accordingly. Otherwise,the generated text is sent to the current application as text that isconventionally output from the keyboard.

Seed: When a user selects some text on the screen and either performssome operation on the selected text (or when an operation is triggeredby some action on the user's part), then uses that text to partially orcompletely determine what operation is performed, the selected text isreferred to as a “seed”. For instance, the selected text could be a namethat is used as a seed for a lookup of information in the local contactdatabase or on an online service such as Facebook®. Seeds that includetext that is visibly highlighted on the device's screen are explicit.There are also implicit seeds, such as the location of the devicegleaned from an onboard GPS, information that is related to something onthe device, such as the author of a message the user is reading, or alocation that is associated with a calendar item. There can be acontinuum of “implicitness” and “explicitness” for items in the dataenvironment of a particular device or application. For example, anaddress or perhaps even the name of a restaurant that is mentioned inthe text of an email that is currently open would be largely implicit,but less so if the text insertion cursor is currently located somewherewithin the text of the address or restaurant name, or if the subjectline of the email is “Meet at Restaurant Name”, and would be explicit ifthe text has already been highlighted by the user.

Settings: The contextual keyboard includes functionality that isreferred to as “settings”, where the user can specify various optionsabout how the contextual keyboard should behave in variouscircumstances. For instance, account information on social networks thatwill be posted to/from the contextual keyboard could be specified in thesettings, as could various user preferences including, but not limitedto, things like prioritized lists of preferred search engines.

Command-Macro: The system includes a database of text strings that, whenentered using the contextual keyboard, are recognized as specialcommands. The system recognizes an entered word or phrase as acommand-macro that is present in the database, and retrieves from thedatabase the corresponding information that specifies what action is tobe carried out and performs the necessary processing. Depending on thenature of the command, the system first determines the most explicitcurrent seed in the processing environment. In some embodiments, morethan one possible seed is identified as a possible target for theindicated processing, and a list of such possible seeds is presented sothat the user can select the desired seed. In some embodiments, thislist is sorted from most to least explicit. Depending on the nature ofthe command, there may be more than one way to perform the processing onthe targeted seed, and the system presents a list of alternative ways toperform the processing. In one embodiment, command-macros are defined sothat they are unambiguously distinct from text that might normally begenerated as ordinary text intended to be output to the currentapplication (the standard functioning of a keyboard). In anotherembodiment, the command-macros are identical to ordinary words in theuser's language. In this case, the desired intent when such a word isentered on the contextual keyboard is explicitly indicated (for example,by selecting the intended action from a presented menu), or the systemattempts to automatically determine the user's intent by detectingwhether or not there is a strong enough correlation between the enteredword as a command, and the presence of an explicit or implicit seed thatis an appropriate target for such a command. Examples presented belowwill clarify these distinctions.

Text-Macro: Command macros may be used as abbreviations for commonlyused words and phrases so that a shorter string of text can substitutefor a longer string of text. In the present invention, thisfunctionality is generalized so that the text that is generated is afunction of an explicit or implicit seed in the processing environment.

FIG. 1 shows an exemplary computer-based device/system 40 (i.e.,contextual keyboard) configured to execute the functionality of thepresent invention. The device 40 includes a processor 44 that is insignal communication with a user-interface device 46 (i.e., keyboard), adisplay device 48, a database 50, and a communication device 52. Theprocessor 44 interprets signals provided by the user-interface device 46and possibly with information from the communication device 52 or thedatabase 50 to provide an output via the display device 48 or some otheroutput device. The user-interface device 48 may be combined with thedisplay device 48, such as a touchscreen display device.

In one embodiment, the device 40 uses a method of text input thatprocesses user actions to recognize the text that the user intends toinput at the word level or higher. One example of such a device is atouchscreen device with a virtual keyboard with which an entire word canbe entered by tracing a continuous path on the virtual keyboard (forexample, the input method disclosed by Kushler et al. in U.S. Pat. No.7,098,896; 7,453,439; or 7,382,358, the contents of which are herebyincorporated by reference). “Touchscreen” means not only screens thatare literally touched (such as on a handheld device or tablet computer),but also screens that are “virtually” touched, such as a local or remotescreen that is controlled with some sort of pointer device or gesturerecognizer. For simplicity, most of the examples discussed will be basedon such systems, but the present invention applies to any method fortext input.

In one embodiment, the present invention includes a keyboard that allowsinformation, including contextual information, to be taken as input, andallows text to be used for other purposes, as may be possible on thedevice, including producing output, or performing an action.

Many of the special functions performed by the device 40 use seeds.Seeds can be either implicit or explicit. An explicit seed is all of thevisible text on the screen, or some specific text that is highlighted.An implicit seed includes any other type of information available in thecurrent context, such as the author of an email message, a phone numberin a call log, a GPS location, and so forth. Some actions do not use aseed at all.

In one embodiment, the user tells the contextual keyboard when the userwants to use its extra functionality. There are a number of ways to dothis, which will be displayed in the use cases below. The user can:

-   -   Make a gesture that tells the keyboard what to do    -   Make a gesture that brings up a menu that the user uses to        choose what to do (different gestures could bring up different        menus)    -   Make a gesture followed by using the keyboard to choose what to        do    -   Use the keyboard to type a “word macro” without a special        gesture preceding it.

In all of these cases, the user's intention will sometimes be ambiguous,e.g., between intending a word to appear as content vs. intending it tobe used as a word-macro. There are many ways to handle this ambiguity.The device will use some of these, and possibly others:

-   -   Prompt the user to explicitly choose between different options    -   Make a guess, based on the user's past history of choices    -   Decide whether to make a guess or prompt for a choice based on        indicated user preferences in the settings    -   Use context to help guess (e.g., indicating “call” with a number        to the left might be guessed to mean “take action—call this        number”, whereas indicating “call” with “I will” to the left        might be intended as content.

As well as disambiguating intending content and intending action, othercases have ambiguities that can be resolved either with a prompt or aguess in the same ways. Examples include things like which phone numberto call when a user indicates to call a particular contact withoutmaking clear which number to call. Other examples could include choosingbetween search engines or modes of sending text.

The following are a number of examples of usage, which display the useof the various types of seeds, and the various ways of interacting withthe contextual keyboard.

Looking Information Up Online

In one embodiment, the contextual keyboard is used to get information.One use for it is to get information from elsewhere that is accessiblevia a device's wired or wireless connection to the Internet (i.e., thecommunication device 52 coupled to a network). For instance, a userselects a piece of text from something they are either reading or typingon the device, and immediately, via gesture or some other method, tellsthe system 40 to use that selected text as a query string on one of manysearch engines. The user can define the list of possible search enginesahead of time, or defaults are provided. A user could also add newonline services to their list on the fly.

FIGS. 2-6 below show an example of a user doing a Web search withinformation that is contained in an explicit seed. First, as shown inFIG. 2, the user is reading an email message on the contextual keyboard.In FIG. 3, the user highlights text in the message (in this case theword “bulgoki”) and performs a gesture. In this example, the gesture isan arrow to the right.

As shown in FIG. 4, a menu 100 appears in response to the arrow gesture.The menu 100 provides different search engines to choose from. Thesearch engines in the menu 100 have either been predefined by the useror are defaults for the contextual keyboard. Once the user has chosenone of the items (i.e., search engines) in the menu 100, then, as shownin FIG. 5, an appropriate results page is displayed, based on a queryusing the selected search engine with the highlighted text as a seed.

Note that it could be possible to avoid the menu altogether and performa gesture that specified not only, as in this case, that the user wantsto use the highlighted text as a search query, but also where the userwants that query to be sent. A gesture for a Google® search mightinclude the user spelling “google” on the a keyboard that appears on thescreen after the initial gesture is made or even when the text to belooked up is highlighted without any intervening gesture. As shown inFIG. 6, the user enters a word-macro using Swype® to tell the system 40to look up the highlighted term using Google®.

Google® (a general-purpose search engine), Yelp® (a consumer reviewssite), and IMDB° (Internet Movie Database) are shown as choices, butmany other sites might be possible to send a query to for variouspurposes. For instance, one could send a query to Amazon® (a largeshopping site), a comparative shopping search engine, YouTube® (avideo-sharing site), a cooking/recipe site, a home improvement site, ora mapping site, etc.

If the user chooses “Add New” from the menu in FIG. 4, the user would betaken to an interface where the user could add new search engines to themenu. This may be the same interface as is present in a “settings”interface provided by the system 40.

While in the “settings”, the user defines strings of text that can beentered on the keyboard to trigger a lookup of selected text (or animplicit seed) at that site. A user might, for instance, define that“yt”, entered by itself rather than as part of a longer word, triggersan action to use an explicit or implicit seed as a query on YouTube®, orto go to the YouTube® home page if there's nothing to use as a seed. Theterm “yt” may never appear on its own otherwise, but it would be easy toimagine cases where conflicts could exist. For instance, a user mightdefine “rt” as a macro to look up the highlighted text onrottentomatoes.com (a movie review aggregation site), but occasionallytype an address that includes “rt” as a word on its own, as anabbreviation for “route”. The device provides a selection for the userto specify which use they intend, when there is not any prependedspecial key or gesture used to make this clear.

In one embodiment, the system 40 varies between asking via a promptevery time, or trying to guess, and offering the user the chance tocorrect it if it guesses wrong. In another embodiment, there is anoption in the “settings” for the system 40 to specify whether to err onthe side of guessing more or asking for verification more often.

Linking to Online Information

In one embodiment, links to online information are created. As well aslooking that information up, a user who was composing text, such as anemail message, includes a link to the relevant online result in themessage itself (For instance, a user who was telling a friend to meethim at a particular restaurant links the name of the restaurant to apage of reviews on a consumer review site such as Yelp®.) This isaccomplished in a similar way as viewing the results, but with asomewhat different gesture after the seed is highlighted, or via the useof a different word-macro.

As shown in FIG. 7, after or as a user is typing a message, the userhighlights the name of a restaurant then performs a gesture, e.g., arrowpointing up. The system 40 then displays a menu of options of searchengines. The user can choose the desired one from the menu or indicatevia use of the keyboard. The contextual keyboard then includes a link tothe appropriate search results in the message. FIG. 8 shows a messagewith an appended link.

In one embodiment, the user chooses (in the contextual keyboard's“settings”) whether by default the link was appended as shown in FIG. 8or handled in some other way, such as by using HTML to make the seedinto a hyperlink to the appropriate URL, or perhaps sending the link ina separate message altogether if the medium for the message has acharacter limit, such as SMS. It would also be possible to use a serviceto produce a shortened URL.

The user could also include the link by using a word macro. As shown inFIG. 9, the user slide-types “linkyelp” on the keyboard to indicate theinclusion of a link to a Yelp.com result for the highlighted text.

The following is an example that uses an implicit seed to get onlineinformation. While reading the same email message as shown in FIG. 2,the user performs a different gesture, thus telling the system 40 tolook up the Facebook® profile for the sender of the message. The profileis then displayed to the user. As in the example above, the user makes agesture or types a word macro that specifically means “give me theFacebook® profile” (this gesture could include typing on a keyboard thatappears on the screen), or could make a different gesture, whichdisplays a menu of things that it can do with that implicit seed, ofwhich “Facebook®” could be one option, together with other socialnetworking sites like Twitter® or MySpace®.

In one embodiment, the user makes a phone call to the mail-sender basedon information in the device's contact database. Or the two types ofthings can be combined, for instance a map from an online mappingservice such as Google Maps® or MapQuest® could be displayed of theuser's address, based on information in the device's contact database.Ancillary services like wallet software could be supported, so that auser could make a gesture to pay money to something represented by animplicit seed.

Should the implicit seed be ambiguous (for instance, if the user waslooking at a message that he had sent to two people), gesturing for,say, a phone call on that message could display a menu of possibleimplicit seeds to use (in this case the two receivers of the message).

In one embodiment, implicit seeds are used as parts of word-macros. Forinstance, a user typing an email message might be able to type the word“gloc” as part of the message in order to include a link to a GoogleMap® of the current address based on GPS data (and this could also bedone based on a highlighted explicit seed as well). This link would thenbe dropped into the message rather than entering the word “gloc”.

Putting Information into Device Databases

Users often want to put information into device databases. When the userwants to put information from one place on the device into someplaceelse on the device, they perform a gesture on the touchscreen, or usesome other method such as pressing a button that produces a menu ortyping a word-macro. The user highlights text before performing thisaction in order to let the contextual keyboard know that this is thetext to be used for the action.

For instance, a user selects information that includes something thatlooks like a phone number, something that looks like an email address,and something that looks like a name (or a subset of those items), andtells the system 40, via a gesture or some other means (such as bytyping a word macro), to add it to the Contact database.

As shown in FIG. 10, the user gestures (a large “C”) to indicate thatthe information on the screen should be added to the device's Contactdatabase.

As shown in FIG. 11, the user slide-types (e.g., Swype®) a word macro“contact” rather than performing a gesture to indicate that theinformation on the screen should be added to the device's Contactdatabase.

Defaults are resettable by the user in the settings interface, such aslabeling a single phone number “mobile” if it is not specifiedotherwise. As with the calendar case, the processor 44 presents an “AddContact” screen (or whatever that screen is called) for confirmation,such as is shown in FIG. 12.

Similarly, a user selects a textual description of an event, including atime, date, and some text, tells the contextual keyboard (either viagesture or some other means such as a word macro) that he wants to usethat text to create an item in the device's Calendar database, and thecontextual keyboard would bring the user to an “Add Calendar Item”screen (or whatever that screen is called), with the fields prepopulatedbased on the selected seed. Ambiguities can be resolved on that screen,and can start out tentatively resolved in accordance with userpresettings or default settings. An example of such a default rule mightbe to interpret times without “a.m.” or “p.m.” designations as “a.m.”between 8:00 and 11:59, and as “p.m.” between 12:00 and 7:59.

In one embodiment, if a user wants to include information from anon-device database in something they are typing (such as an emailmessage), they can simply type a seed to that information, and provide agesture or another indicator method, such as word macro, that they wantto bring in the appropriate information from the database. It may bepossible to specify which part of the device to bring in the informationfrom, in case the seed is ambiguous between, say, a Contact and aCalendar item.

As elsewhere, the user is then prompted to disambiguate if necessary(e.g., if they selected the text “John” and their Contact databasecontains more than one “John”), and the appropriate information from thedatabase can be included. How that information is included (whetherin-line, appended, in a separate message, or via some other method), andexactly what information is included (e.g., all or only some of thefields in the appropriate database entry), can all be specified viauser-editable defaults in the settings.

Retrieving Other Device Information

The information included does not have to be something the user haspreviously entered, or is even visible on the screen. An example ofanother type of information the device may have access to that could beincluded in this way is locational data from a GPS unit of the system40. There are several forms that data could be included in, from barelatitude and longitude information to a link to an online map (such asGoogle Maps®, or MapQuest®) with the appropriate location marked.

FIGS. 13-20 illustrate an example of this process.

A smartphone user is writing a message to a friend and has slide-typed“meet me at starbucks” in the text entry field, see FIG. 13. The userwants to see on a map where there is a Starbucks® nearby. As shown inFIG. 14, the user highlights the “starbucks” text they have entered inthe message content. Next, as shown in FIG. 15, the user presses “Swype”key and drags their finger to the “M” key to indicate a wish to see amap. Based on that action, the smartphone launches a map viewingapplication, which locates the nearby Starbucks® based on the phone'scurrent GPS location, see FIGS. 16 and 17. After the user finds andselects a nearby Starbucks® in the mapping application, the system 40returns back to the messaging application. Upon returning, the name,address, or hyperlink of the selected Starbucks®, the system 40 returnsthe selected map address (such as “Starbucks on First and Union”) to thetext entry area, see FIG. 18. In some embodiments, a correspondinghyperlink/URL is returned.

In another embodiment, the entered address includes a clickable link 120to the map application, as shown in FIG. 19.

The following are additional use case scenarios:

-   -   A user is entering or reading text in an application on a        touchpad-equipped computing device, such as a Swype-equipped        smartphone.    -   The user selects a portion of the text and makes a request to        bring the keyboard to foreground if necessary.    -   The user contacts an “action” button (such as the        “Swype-branded” button) and drags to a key (or a key sequence).    -   The system performs an action based on the action key(s) entered        and the selected text.

The action can be also customized based on the currently activeapplication. The action can also be customized based on the stored userpreferences.

The same method applies to any other information the system 40 hasaccess to. For example, if handheld devices started to includethermometers or altimeters, then the user could bring in informationabout temperature or altitude. Similarly, many devices already includecameras, and a user could use this method to include an image, forinstance as an attachment to an email message.

Performing Actions on the Device

Most of the examples so far have to do with compact seeds, in many casesa single word, but there is no reason seeds cannot be longer than that.A user of a device with a contextual keyboard slide-types a messagebefore deciding exactly what to do with it. If it turns out to be shortand general, the user might decide to send it as a Twitter® post, or ifit turns out to be long and specific to one person the user might decideto send it as an email, (or an SMS if it is specific to one person, butshort and urgent.) The user might not know exactly what to do with ituntil after it is complete. Using the system 40, the user could selectthat message and make a gesture that tells the device where to send themessage (e.g., to Twitter®, or as an email).

As shown in FIG. 20, first, the user types a message on a blanknotepage. For this example, the user is using all of the text on thescreen as the content of the message, so nothing needs to behighlighted. Should only part of the text be the message, the user wouldhighlight the appropriate part. The user performs a gesture, which isshown in FIG. 21 as a zigzag down the screen, which tells the system 40that the user wants to send the content off as a message.

Afterwards, the user is presented with a menu of possible destinationsfor the message (FIG. 22), and can choose one of those options or canindicate, using the keyboard, the destination for the message.

As with the situation when a user looks up information using an onlinesearch engine, the user predefines possible ways to send a message.Possibilities include choosing to send an email from one of severalemail accounts (e.g., a work and a personal account), to send a Twitter®update, a Facebook® status update, an SMS, etc. Account information suchas usernames and passwords can be set when the choice was made, and canbe edited later in the “settings”.

In one embodiment, a user writes a note using a memo application anddecides to send a portion of the entered text to a Facebook® wallupdate. The user first selects the text they wish to send to theirFacebook® wall. The selected text may also be retrieved while reading amessage, browsing a web page, reading an ebook, etc. Then, as shown inFIGS. 23 and 24, the user presses the Swype® key and drags to the “F”key (or alternately, the “FB” key sequence). Their Facebook® wall isupdated with the highlighted text based on this action and a predefinedapplication that accesses Facebook® uses the user's logon informationstored locally, see FIG. 25.

FIGS. 26-28 illustrate a similar process as that shown in FIGS. 23-25except with the use of a Twitter® account.

Note that some of these message-sending options might require some morespecific information to be provided, some might not, and some could workeither way. For instance, sending an email requires specifying one ormore recipients, posting a Facebook® status update does not requirespecifying a recipient, but making a Facebook® wall post does.

If the user chooses an option that needs a recipient, a text box promptcould allow the recipient to be specified. There could also be aconvention that the processor 44 looks in a specific location, such asthe first line of the message, for the name of a contact, and offers touse that as the recipient if it finds one (or more).

The user could also use a word-macro rather than a gesture, by typing apredefined word on the keyboard, and possibly responding to a prompt todisambiguate if necessary (e.g., “sms” could be a word-macro that means“send this message as an sms”, but could also be uses as text in amessage, for instance if a user is describing to someone a message theyreceived).

While the preferred embodiment of the invention has been illustrated anddescribed, as noted above, many changes can be made without departingfrom the spirit and scope of the invention. Accordingly, the scope ofthe invention is not limited by the disclosure of the preferredembodiment. Instead, the invention should be determined entirely byreference to the claims that follow.

1. A method comprising: at a touchscreen device of a device, generatinga signal based on a user contact; and sending the generated signal to aprocessor, wherein the user contact comprises a gesture or a slide-typeentry on a displayed keyboard; and at a processor of the device,executing a function in response to the generated signal based on atleast one of an implicit seed or an explicit seed; and outputtingresults of the executed function to the touchscreen device.
 2. Themethod of claim 1, wherein the explicit seed comprises at least one wordselected by the user that is displayed on the touchscreen device.
 3. Themethod of claim 1, wherein the executed function comprises: opening asearch engine; populating the search engine with the seed; andcommanding the search engine to execute.
 4. The method of claim 3,wherein opening comprises: displaying a menu of previously definedsearch engines; and receiving a manual selection of one of thepreviously defined search engines from the menu.
 5. The method of claim3, wherein the slide-type entry is associated with a previously definedword-macro configured to open a specific search engine.
 6. The method ofclaim 1, wherein the implicit seed comprises content displayed on thetouchscreen device.
 7. The method of claim 1, wherein the executedfunction comprises saving the seed to contacts memory of the device. 8.The method of claim 1, wherein the executed function comprises: postingthe seed to a social media site based on the user contact.
 9. The methodof claim 8, wherein posting comprises: displaying a menu of previouslydefined social media sites; and receiving a manual selection of one ofthe previously defined social media sites from the menu; andautomatically posting the seed to the selected social media site. 10.The method of claim 1, wherein the executed function comprises:automatically opening a mapping application based on the user contact;receiving a user selection of an address presented by the mappingapplication; and automatically inserting the user selected address intoa previously active window.
 11. The method of claim 10, wherein theexecuted function further comprises automatically inserting a hyperlinkicon in the previously active window.
 12. A device comprising: atouchscreen device configured to, generate a signal based on a usercontact; and send the generated signal to a processor, wherein the usercontact comprises a gesture or a slide-type entry on a displayedkeyboard; and a processor configured to, execute a function in responseto the generated signal based on at least one of an implicit seed or anexplicit seed; and output results of the executed function to thetouchscreen device.
 13. The device of claim 12, wherein the explicitseed comprises at least one word selected by the user that is displayedon the touchscreen device.
 14. The device of claim 12, wherein theprocessor is configured to, open a search engine; populate the searchengine with the seed; and command the search engine to execute.
 15. Thedevice of claim 14, wherein the processor opens by, displaying a menu ofpreviously defined search engines; and receiving a manual selection ofone of the previously defined search engines from the menu.
 16. Thedevice of claim 14, wherein the slide-type entry is associated with apreviously defined word-macro configured to open a specific searchengine.
 17. The device of claim 12, wherein the implicit seed comprisescontent displayed on the touchscreen device.
 18. The device of claim 12,further comprising a contacts memory, wherein the executed functioncomprises saving the seed to the contacts memory.
 19. The device ofclaim 12, wherein the processor is configured to post the seed to asocial media site based on the user contact.
 20. The device of claim 19,wherein the processor posts by, displaying a menu of previously definedsocial media sites; and receiving a manual selection of one of thepreviously defined social media sites from the menu; and automaticallyposting the seed to the selected social media site.
 21. The device ofclaim 12, wherein the processor is configured to, automatically open amapping application based on the user contact; receive a user selectionof an address presented by the mapping application; and automaticallyinsert the user selected address into a previously active window. 22.The device of claim 21, wherein the processor is further configured toautomatically insert a hyperlink icon in the previously active window.